package cn.oms.oms.entity;

import java.math.BigDecimal;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import java.time.LocalDate;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableField;
import java.io.Serializable;
import java.util.Date;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

/**
 * <p>
 *
 * </p>
 *
 * @author AllenChen曾晨
 * @since 2022-04-29
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("bill")
@ApiModel(value="Bill对象", description="")
public class Bill implements Serializable {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "账单ID")
    @TableId(value = "billRecordId", type = IdType.AUTO)
    private Integer billRecordId;

    @ApiModelProperty(value = "患者ID")
    @TableField("patientId")
    private Integer patientId;

    @ApiModelProperty(value = "处方ID")
    @TableField("prescriptionId")
    private Integer prescriptionId;

    @ApiModelProperty(value = "医嘱ID")
    @TableField("orderId")
    private Integer orderId;

    @ApiModelProperty(value = "项目ID")
    @TableField("itemId")
    private Integer itemId;

    @ApiModelProperty(value = "项目名称")
    @TableField("itemName")
    private String itemName;

    @ApiModelProperty(value = "项目单价金额")
    @TableField("itemPrice")
    private BigDecimal itemPrice;

    @ApiModelProperty(value = "金额单位名称")
    @TableField("itemPriceUnitName")
    private String itemPriceUnitName;

    @ApiModelProperty(value = "项目数量")
    @TableField("itemNum")
    private Integer itemNum;

    @ApiModelProperty(value = "产品总计金额")
    @TableField("itemTotalPrice")
    private BigDecimal itemTotalPrice;

    @ApiModelProperty(value = "账单费用类型名称")
    @TableField("billFeeTypeName")
    private String billFeeTypeName;

    @ApiModelProperty(value = "绑定缴费单标记")
    @TableField("billingFlag")
    private Integer billingFlag;

    @ApiModelProperty(value = "缴费单ID")
    @TableField("accountId")
    private Integer accountId;

    @ApiModelProperty(value = "付费状态标记")
    @TableField("billPayFlag")
    private Integer billPayFlag;

    @ApiModelProperty(value = "创建时间")
    @TableField("createTime")
    private Date createTime;

    @ApiModelProperty(value = "删除标记")
    @TableField("deleteFlag")
    private Integer deleteFlag;

    /**
     * 当前问题包含的标签集合
     */
    //这个属性没有对应的列,需要使用下面的注解表示,否则数据库操作会报错
    @TableField(exist = false)
    private String patientName;

    /**
     * 当前问题包含的标签集合
     */
    //这个属性没有对应的列,需要使用下面的注解表示,否则数据库操作会报错
    @TableField(exist = false)
    private String returnCreateTime;

}
